$(function () {
  // 1.1 获取裁剪区域的 DOM 元素
  let $image = $("#image");
  // 1.2 配置选项
  const options = {
    // 纵横比
    aspectRatio: 1,
    // 指定预览区域
    preview: ".img-preview",
  };

  // 1.3 创建裁剪区域
  $image.cropper(options);

  //需求2:
  $("#changeImageBtn").on("click", () => {
    $("#changeImageInp").click();
  });

  //需求3:
  let layer = layui.layer;
  $("#changeImageInp").on("change", function (e) {
    //拿到用户选择的文件
    let file = e.target.files[0];
    //非空校验
    if (file === undefined) {
      return layer.msg("干啥呢,老弟");
    }
    //根据选择的文件，创建一个对应的 URL 地址：
    let newImgURL = URL.createObjectURL(file);
    //先销毁旧的裁剪区域，再重新设置图片路径，之后再创建新的裁剪区域
    $image
      .cropper("destroy") // 销毁旧的裁剪区域
      .attr("src", newImgURL) // 重新设置图片路径
      .cropper(options); // 重新初始化裁剪区域
  });

  //需求4:上传头像
  $("#uploadAvatar").on("click", function () {
    //生成base64格式图片
    let dataURL = $image
      .cropper("getCroppedCanvas", {
        // 创建一个 Canvas 画布
        width: 100,
        height: 100,
      })
      .toDataURL("image/png"); // 将 Canvas 画布上的内容，转化为 base64 格式的字符串
    //console.log(dataURL);
    //发送axios请求
    //axios传递参数,底层默认没有帮助编码,需要手动编码
    //encodeURIComponent:会把特殊符号一起编译

    //注意:jquery 中的ajax是不需要编码的,底层帮助我们编码
    axios({
      method: "POST",
      url: "/my/update/avatar",
      data: "avatar=" + encodeURIComponent(dataURL),
    }).then((res) => {
      //console.log(res);
      if (res.data.status !== 0) {
        return layer.msg("来了,老弟");
      }
      //成功提示 刷新index.html 更新头像
      layer.msg("来了,老弟");
      window.parent.getUserInfo();
    });
  });
});
